布林值的概念
很單純,非黑即白。不是True
就是False
。
轉型成布林值
JavaScript有個叫做Boolean
的全域函式,能把不是布林型別的數值轉成布林型別。
var someString = "bla bla bla";
var emptyString = "";
var zero = 0;
Boolean(someString);
console.log(Boolean(someString)); // True
Boolean(emptyString);
console.log(Boolean(emptyString)); // False
Boolean(zero);
console.log(Boolean(zero)); // False
在JavaScript裡,數值0跟空字串轉布林值後都是false
那如何「把黑的轉成白的」呢?
這時候可以透過JavaScript的強制轉型,反向(NOT)運算子!
,一般用在「不等於」的判斷情境。
var someString = "bla bla bla";
var emptyString = "";
var zero = 0;
Boolean(someString);
console.log(!Boolean(someString)); // False
Boolean(emptyString);
console.log(!Boolean(emptyString)); // True
Boolean(zero);
console.log(!Boolean(zero)); // True
那要如何得到原來數值所對應的布林值呢?負負得正,這時候就打兩次驚嘆號!!
,再加一個!
又變反向,依此類推。
var someString = "bla bla bla";
var emptyString = "";
var zero = 0;
Boolean(someString);
console.log(!!Boolean(someString)); // True
Boolean(emptyString);
console.log(!!Boolean(emptyString)); // False
Boolean(zero);
console.log(!!Boolean(zero)); // False
var someString = "bla bla bla";
var emptyString = "";
var zero = 0;
Boolean(someString);
console.log(!!!Boolean(someString)); // False
Boolean(emptyString);
console.log(!!!Boolean(emptyString)); // True
Boolean(zero);
console.log(!!!Boolean(zero)); // True